package zuo.highLevel_9;

/**
 * @Author: Forx
 * @Data: 2021/7/12
 * @Desc: Algorithm - zuo.highLevel_9
 * @Version: v1.0
 */

/**
 * 已知一个字符串可以按照以下规律生成多个字符
 *
 *          abcd                        -->               bdca           (三层可以随机选择交不交换位置)
 *       a        bcd      (l1) 交换                  bdc       a
 *               b    cd    (l2)   不换              b     dc
 *                    c  d -->交换                        d  c
 *
 *         (或者)
 *         abcd                   badc
 *        ab   cd     不换     ba      dc
 *       a  b  c  d     换   b   a   d   c
 *       OR
 *       abcd
 *       abc d
 *       ...  ...
 *
 *
 *
 *  现在给定两个字符串,判断是否可以通过这种变换得到第二个字符串
 *
 * */


/**
 * 给定字符串s1,s2求s1中含有s2中所有字符的最小子串长度
 * 如 s1=1234 s2=344返回-1,因为s2中有两个4
 * 若s1=1434 s2=344 返回3 ,因为434
 *
 * 滑动窗口,词频计数
 *
 *
 * */


/**
 * 一个缓存结构需要实现如下功能
 * void set(int key, int value):加入或修改key对应的value
 * int get(int key):查询key对应的value值
 * 但是缓存中最多放K条记录，如果新的第K+1条记录要加入，就需要根据策略删掉一条记录，然后才能把新记录加入。
 * 这个策略为:在缓存结构的K条记录中，哪一个key从进入缓存结构的时刻开始，被调用set或者get的次数最少，
 * 就删掉这个key的记录;如果调用次数最少的key有多个，上次调用发生最早的key被删除。
 * 这就是LFU缓存替换算法。实现这个结构，K作为参数给出。
 * set和get方法要求O1
 *
 * 双链表上串双链表,然后通过map得值
 *
 *
 * */

/**
 * N个加油站组成一个环形，给定两个长度都是N的非负数组oil和dis(N>1)，oil[i]代表第i个加油站存的油可以跑多少千米，dis[i]代表第i个加油站到环中下一个加油站相隔多少千米。
 *假设你有一辆油箱足够大的车，初始时车里没有油。如果车从第i个加油站出发，最终可以回到这个加油站，那么第i个加油站就算良好出发点，否则就不算。
 * 请返回长度为N的boolean型数组res，res[i]代表第i个加油站是不是良好出发点。
 *
 * */


public class HL9 {
}
